lib/deploy: handle FIFREEZE ENOSYS failure
authorDaniel Drake <drake@endlessm.com>
Wed, 21 Aug 2019 06:42:48 +0000 (14:42 +0800)
committerAtomic Bot <atomic-devel@projectatomic.io>
Wed, 21 Aug 2019 12:38:05 +0000 (12:38 +0000)
When running under qemu, unimplemented ioctls such as FIFREEZE
return ENOSYS, and this causes the deployment to fail.

Catch this and handle it like EOPNOTSUPP.

I'm not sure if qemu's behaviour is fully correct here (or if it should
return EOPNOTSUPP) but it's trivial to handle regardless.

Closes: #1901
Approved by: cgwalters

src/libostree/ostree-sysroot-deploy.c

index d47f64380024c83fc50aa2e90b2ed1440ddd7644..9de5464af32a7d2681795295e5359de96cfd5a23 100644 (file)
@@ -1374,7 +1374,7 @@ fsfreeze_thaw_cycle (OstreeSysroot *self,
            * the filesystem is already frozen (EBUSY).
            * OK, let's just do a syncfs.
            */
-          if (G_IN_SET (errno, EOPNOTSUPP, EPERM, EBUSY))
+          if (G_IN_SET (errno, EOPNOTSUPP, ENOSYS, EPERM, EBUSY))
             {
               /* Warn if the filesystem was already frozen */
               if (errno == EBUSY)